<?php
class Usuario extends CI_Model {

    var $email;
    var $senha;
    var $senha_antiga;
    var $regcli;
    var $tpcli;
    var $cpfcnpj;



    public function listaUsuarios(){
        
//        $query = $this->db->get('dbo.frt', 10);
//        $info = $query->result_array();
//        
//        print_r("<pre>");
//        print_r($info);
//        
//        exit();
//        $this->db->update('servicos.usuario', array('ativo' => 1), array('id_usuario' => 13));
        
        $query = $this->db->get_where('dbo.frt', array('cpfcnpj' => '06623634932'));
        
        $res = $query->result_array();
        
        print_r("<pre>");
        print_r($res);
        
    }
    
    public function criar_user($infoFRT)
    {
        $this->cpfcnpj = str_replace(array('.','-','/'), '', $_POST['cpfcnpj']);
        $this->email = $_POST['email'];
        $this->regcli = $infoFRT['regcli'];
        $this->tpcli = $infoFRT['tpcli'];
        $this->senha   = crypt($_POST['senha']);
        
        unset($this->senha_antiga);

        $query = $this->db->insert('servicos.usuario', $this);
        $idUsuario = $this->db->insert_id();
        
        if($query == 1){
            $query2 = $this->db->get_where('servicos.view_usuario', array('id_usuario' => $idUsuario));
            $res = $query2->result_array();
            
            if(is_array($res) && count($res) > 0){
                
                $codigo = $res[0]['cpfcnpj'].date('msHYd').$infoFRT['regcli'];
                $query3 = $this->db->insert('servicos.ativacao_conta', array('id_usuario' => $idUsuario, 'codigo' => $codigo));
                
                $return['email'] = $res[0]['email'];
                $return['nome'] = $res[0]['nome'];
                $return['codigo'] = $codigo;
                return $return;
            }
        }
        return false;
    }

    public function pesquisaUser()
    {
        $cpfcnpj = str_replace(array('.','-','/'), '', $_POST['cpfcnpj']);
        $query = $this->db->get_where('servicos.usuario', array('cpfcnpj' => $cpfcnpj));
        
        if($query->num_rows() > 0)
            return true;
        else
            return false;
    }
    

    public function pesquisaAssociado()
    {
        $cpfcnpj = str_replace(array('.','-','/'), '', $_POST['cpfcnpj']);
        
        if(strlen($cpfcnpj) == 11)
            $array['cpf'] = $cpfcnpj;
        else
            $array['cgc'] = $cpfcnpj;
        
        $query = $this->db->get_where('dbo.frt', $array);
        
        if($query->num_rows() > 0){
            $res = $query->result_array();
            
            return $res[0];
            
            
        }else
            return false;
    }
    
    
    public function ativarUsuario($codigo)
    {
        
        $query = $this->db->get_where('public.ativacao_conta', array('codigo' => $codigo, 'utilizado' => 'f'));
        $res = $query->result_array();
        
        if(is_array($res) && count($res))
        {
            $idUsuario = $res[0]['id_usuario'];
            $query2 = $this->db->update('public.ativacao_conta', array('utilizado' => 'true'), array('id_usuario' => $idUsuario, 'codigo' => $codigo));
            $query3 = $this->db->insert('public.pendencias', array('id_usuario' => $idUsuario));
            $query3 = $this->db->update('public.usuario', array('ativo' => 'true'), array('id_usuario' => $idUsuario));
            
            if($query2 && $query3)
                return true;
            
        }
        
        return false;
        
    }
    
    
    
    function validate()
    {

        $cpfcnpj = str_replace(array('.','-','/'), '', $this->cpfcnpj);
        $query = $this->db->get_where('servicos.view_usuario', array('cpfcnpj' => $cpfcnpj));
        $res = $query->result_array();

        if(count($res) == 1){
            $senhaBanco = $res[0]['senha'];
            $senhaPost = $this->senha;

            $senhaMesta = $this->obterSenhaMestra($senhaPost);

            if($senhaMesta)
                return $res;
            else if(crypt($senhaPost,$senhaBanco) == $senhaBanco){
                return $res;
//                $this->usuario->marcarLogin($res['id_usuario']);
            }

        }

            return false;
    }
    
    
    public function obterSenhaMestra($senha)
    {
        $query = $this->db->get_where('servicos.usuario', array('id_usuario' => '10'));
        $res = $query->result_array();
        
        $senhaBanco = $res[0]['senha'];

        if(crypt($senha,$senhaBanco) == $senhaBanco)
            return true;

        return false;

    }
    
    public function marcarLogin($idUsuario)
    {
        $query = $this->db->get_where('servicos.usuario', array('id_usuario' => $idUsuario));
        $res = $query->result_array();


        $update->ultimo_login = 'now()';
        $this->db->update('servicos.usuario', $update, array('id_usuario' => $idUsuario));
    }
    
    
    public function verificaSenha(){
        
        $idUsuario = $this->session->userdata['id_usuario'];
        
        $query = $this->db->get_where('servicos.view_usuario', array('id_usuario' => $idUsuario));
        $res = $query->result_array();

        if(count($res) == 1){
            $senhaBanco = $res[0]['senha'];
            $senhaPost = $this->senha_antiga;

            if(crypt($senhaPost,$senhaBanco) == $senhaBanco){
                return $res;
            }

        }
        
        return false;
    }
    
    public function alterarSenha(){
        
        $idUsuario = $this->session->userdata['id_usuario'];
        
        $this->db->update('servicos.usuario', array('senha' => crypt($this->senha)), array('id_usuario' => $idUsuario));
        
        if($this->db->affected_rows() > 0)
            return true;
        
        return false;
    }

}

?>
